class Person():
    country="中国"
    def __init__(self):
        self.name="xm"
    pass
    @classmethod
    def set_country(cls,country):
        cls.country=country
    @staticmethod
    def get_country():
        return Person.country
xm=Person()
# 类属性可以通过类对象或者实例对象进行访问
print(xm.country)
print(Person.country)
Person.country="China"
print(xm.country)
# 类属性修改只能通过类对象进行修改，通过实例对象修改类属性，本质上是对该实例对象创建了一个同名的实例属性
# 实例对象修改类属性的值，不会影响到类属性本身
xm.country="CHINA"
print(Person.country)
xh=Person()
print(xh.country)
print(xm.country)
# 实例属性只能通过实例对象进行访问
print(xm.name)
# print(Person.nama)  会报错
# 可以通过实例对象访问类方法
xm.set_country("中国")
#这里输出的结果仍然是上面进行使用xm.country进行创建的实例属性，而不是类属性
print(xm.country)
print("调用xh.country输出类属性")
print(xh.country)
# 调用静态方法
print(Person.get_country())  #输出类属性修改过后的值
print(xm.get_country())